#include "luasqlproxy.h"
#include <QSqlError>
#include <QDebug>

LuaSqlExec::LuaSqlExec(QSqlQuery *sql) : m_sql(sql)
{
}

QtLua::Value::List LuaSqlExec::meta_call(QtLua::State &ls, const QtLua::Value::List &args)
{
    QtLua::String q = get_arg<QtLua::String>(args, 0);
    bool ok = m_sql->exec(QString::fromUtf8(q.constData()));
    if (!ok)
        qDebug() << m_sql->lastError().text();
    return QtLua::Value(ls, ok);
}


LuaSqlNext::LuaSqlNext(QSqlQuery *sql) : m_sql(sql)
{
}

QtLua::Value::List LuaSqlNext::meta_call(QtLua::State &ls, const QtLua::Value::List &args)
{
    bool ok = m_sql->next();
    return QtLua::Value(ls, ok);
}


LuaSqlValue::LuaSqlValue(QSqlQuery *sql) : m_sql(sql)
{
}

QtLua::Value::List LuaSqlValue::meta_call(QtLua::State &ls, const QtLua::Value::List &args)
{
    int n = get_arg<int>(args, 0);
    return QtLua::Value(ls, m_sql->value(n));
}
